package cn.edu.jsu.official.service;

import cn.edu.jsu.official.pojo.dto.*;
import cn.edu.jsu.official.pojo.vo.CommonResult;
import cn.edu.jsu.official.pojo.vo.LoginVO;
import cn.edu.jsu.official.pojo.vo.MemberToShowVO;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletRequest;
import java.util.List;

/**
 * @author Mo
 * @createTime 2022/3/2 23:09
 * @descripiton
 */
public interface AdminService {
    CommonResult login(LoginVO loginVO, HttpServletRequest httpServletRequest);

    CommonResult uploadProjectAchievement(MultipartFile articleFile, MultipartFile frontCoverFile, ProjectAchievement projectAchievement);

    CommonResult addProjectInProgressInfo(MultipartFile frontCoverFile, ProjectInProgressInfo projectInProgressInfo);

    CommonResult uploadContestAchievement(MultipartFile articleFile, MultipartFile frontCoverFile, ContestAchievement contestAchievement);

    CommonResult uploadContestInfo(MultipartFile contestImage, ContestInfo contestInfo);

    CommonResult uploadCopyright(MultipartFile articleFile, MultipartFile frontCoverFile, CopyrightInfo copyrightInfo);

    CommonResult uploadMemberInfo(MultipartFile multipartFile, MemberInfo memberInfo);

    CommonResult addGoalInfo(GoalInfo goalInfo);

    CommonResult deleteProjectAchievement(List<String> projectAchievementIdList);

    CommonResult deleteProjectInProgress(List<String> projectIdList);

    CommonResult deleteContestAchievement(List<String> contestAchievementIdList);

    CommonResult deleteContestInfo(List<String> contestInfoIdList);

    CommonResult deleteCopyright(List<String> copyrightIdList);

    CommonResult deleteMemberInfo(List<String> memberIdList);

    CommonResult deleteGoalInfo(List<String> goalIdList);

    CommonResult countHonor();

    CommonResult countMember();

    CommonResult countCopyright();

    CommonResult countContestAchievement();

    CommonResult countProjectAchievement();

    CommonResult updateProjectAchievement(ProjectAchievement projectAchievement);

    CommonResult updateContestInfo(ContestInfo contestInfo);

    CommonResult updateGoalInfo(GoalInfo goalInfo);

    CommonResult addHistoryProcess(HistoryProcess historyProcess);

    CommonResult deleteHistoryProcess(List<String> historyProcessIdList);

    CommonResult updateProjectInProgress(ProjectInProgressInfo projectInProgressInfo);

    CommonResult updateContestAchievement(ContestAchievement contestAchievement);

    CommonResult updateCopyright(CopyrightInfo copyrightInfo);

    CommonResult updateMemberInfo(MemberInfo memberInfo);

    CommonResult updateHistoryProcess(HistoryProcess historyProcess);

    CommonResult updatePassword(PwdInfo pwdInfo);

    CommonResult queryUserInfo(UserInfo userInfo);

    CommonResult chooseMemberToDisplay(MemberToShowVO memberToShowVO);

    CommonResult addTechStackInfo(TechStackInfo techStackInfo);

    CommonResult deleteTechStackInfo(List<String> techStackInfoIdList);

    CommonResult updateTechStackInfo(TechStackInfo techStackInfo);

    CommonResult updateArticle(String articleId, String articleContent);

    CommonResult updateAvatar(MultipartFile avartar, String memberId);
}
